﻿var semillaSiguiente;
var semilla;
var multiplicador;
var constanteAditiva;
var nroNatural;

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}


function graficarLinea(sContenedor,sTitulo,sSubtitulo,sLeyendaVertical,sUnidad,vIndependiente,vValores)
{
	$('#'+sContenedor).highcharts({
		chart: {
			type: 'line',
			marginRight: 130,
			marginBottom: 25
		},
		title: {
			text: sTitulo,
			x: -20 //center
		},
		subtitle: {
			text: sSubtitulo,
			x: -20
		},
		xAxis: {
			categories: vIndependiente
		},
		yAxis: {
			title: {
				text: sLeyendaVertical
			}
		},
		tooltip: {
			valueSuffix: sUnidad
		},
		plotOptions: {
			line: {
				dataLabels: {
					enabled: false
				}
			}
		},
		legend: {
			layout: 'vertical',
			align: 'right',
			verticalAlign: 'top',
			x: -10,
			y: 100,
			borderWidth: 0
		},
		series: vValores
	});
}

//Función genérica que retorna el siguiente número aleatorio
function generaRandom(tipo)
{
	var factor;
	
	if(tipo=='1')//si el tipo es con constante aditiva o no
		factor=((multiplicador*semillaSiguiente)+constanteAditiva);
	else if(tipo=='2')
		factor=((multiplicador*semillaSiguiente));
	else
		return Math.random().toFixed(3);
		
	
	var division 	= factor / nroNatural; //Dividimos Xn entre M
	var resto 		= factor % nroNatural; //Obtenemos el resto de dividir Xn entre M
	var random = division % 1; //Obtenemos los decimales de la resta
	random = random.toFixed(3); //Truncamos a 3 decimales
	
	semillaSiguiente=resto; 
	return random;
	
}